1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.purple.pounce; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import derelict.glib.ghash; 34 import derelict.glib.glist; 35 import derelict.purple.account; 36 import derelict.purple.blist; 37 38 extern (C): 39 40 alias _PurplePounce PurplePounce; 41 alias _Anonymous_0 PurplePounceEvent; 42 alias _Anonymous_1 PurplePounceOption; 43 alias void function (_PurplePounce*, _Anonymous_0, void*) PurplePounceCb; 44 45 enum _Anonymous_0 46 { 47 PURPLE_POUNCE_NONE = 0, 48 PURPLE_POUNCE_SIGNON = 1, 49 PURPLE_POUNCE_SIGNOFF = 2, 50 PURPLE_POUNCE_AWAY = 4, 51 PURPLE_POUNCE_AWAY_RETURN = 8, 52 PURPLE_POUNCE_IDLE = 16, 53 PURPLE_POUNCE_IDLE_RETURN = 32, 54 PURPLE_POUNCE_TYPING = 64, 55 PURPLE_POUNCE_TYPED = 128, 56 PURPLE_POUNCE_TYPING_STOPPED = 256, 57 PURPLE_POUNCE_MESSAGE_RECEIVED = 512 58 } 59 60 enum _Anonymous_1 61 { 62 PURPLE_POUNCE_OPTION_NONE = 0, 63 PURPLE_POUNCE_OPTION_AWAY = 1 64 } 65 66 struct _PurplePounce 67 { 68 char* ui_type; 69 PurplePounceEvent events; 70 PurplePounceOption options; 71 PurpleAccount* pouncer; 72 char* pouncee; 73 GHashTable* actions; 74 gboolean save; 75 void* data; 76 } 77 78 79 version(Derelict_Link_Static) 80 { 81 extern( C ) nothrow 82 { 83 PurplePounce* purple_pounce_new(const(char)* ui_type, PurpleAccount* pouncer, const(char)* pouncee, PurplePounceEvent event, PurplePounceOption option); 84 void purple_pounce_destroy(PurplePounce* pounce); 85 void purple_pounce_destroy_all_by_account(PurpleAccount* account); 86 void purple_pounce_destroy_all_by_buddy(PurpleBuddy* buddy); 87 void purple_pounce_set_events(PurplePounce* pounce, PurplePounceEvent events); 88 void purple_pounce_set_options(PurplePounce* pounce, PurplePounceOption options); 89 void purple_pounce_set_pouncer(PurplePounce* pounce, PurpleAccount* pouncer); 90 void purple_pounce_set_pouncee(PurplePounce* pounce, const(char)* pouncee); 91 void purple_pounce_set_save(PurplePounce* pounce, gboolean save); 92 void purple_pounce_action_register(PurplePounce* pounce, const(char)* name); 93 void purple_pounce_action_set_enabled(PurplePounce* pounce, const(char)* action, gboolean enabled); 94 void purple_pounce_action_set_attribute(PurplePounce* pounce, const(char)* action, const(char)* attr, const(char)* value); 95 void purple_pounce_set_data(PurplePounce* pounce, void* data); 96 PurplePounceEvent purple_pounce_get_events(const(PurplePounce)* pounce); 97 PurplePounceOption purple_pounce_get_options(const(PurplePounce)* pounce); 98 PurpleAccount* purple_pounce_get_pouncer(const(PurplePounce)* pounce); 99 const(char)* purple_pounce_get_pouncee(const(PurplePounce)* pounce); 100 gboolean purple_pounce_get_save(const(PurplePounce)* pounce); 101 gboolean purple_pounce_action_is_enabled(const(PurplePounce)* pounce, const(char)* action); 102 const(char)* purple_pounce_action_get_attribute(const(PurplePounce)* pounce, const(char)* action, const(char)* attr); 103 void* purple_pounce_get_data(const(PurplePounce)* pounce); 104 void purple_pounce_execute(const(PurpleAccount)* pouncer, const(char)* pouncee, PurplePounceEvent events); 105 PurplePounce* purple_find_pounce(const(PurpleAccount)* pouncer, const(char)* pouncee, PurplePounceEvent events); 106 gboolean purple_pounces_load(); 107 void purple_pounces_register_handler(const(char)* ui, PurplePounceCb cb, void function (PurplePounce*) new_pounce, void function (PurplePounce*) free_pounce); 108 void purple_pounces_unregister_handler(const(char)* ui); 109 GList* purple_pounces_get_all(); 110 GList* purple_pounces_get_all_for_ui(const(char)* ui); 111 void* purple_pounces_get_handle(); 112 void purple_pounces_init(); 113 void purple_pounces_uninit(); 114 } 115 } 116 else 117 { 118 extern( C ) nothrow 119 { 120 alias da_purple_pounce_new = PurplePounce* function(const(char)* ui_type, PurpleAccount* pouncer, const(char)* pouncee, PurplePounceEvent event, PurplePounceOption option); 121 alias da_purple_pounce_destroy = void function(PurplePounce* pounce); 122 alias da_purple_pounce_destroy_all_by_account = void function(PurpleAccount* account); 123 alias da_purple_pounce_destroy_all_by_buddy = void function(PurpleBuddy* buddy); 124 alias da_purple_pounce_set_events = void function(PurplePounce* pounce, PurplePounceEvent events); 125 alias da_purple_pounce_set_options = void function(PurplePounce* pounce, PurplePounceOption options); 126 alias da_purple_pounce_set_pouncer = void function(PurplePounce* pounce, PurpleAccount* pouncer); 127 alias da_purple_pounce_set_pouncee = void function(PurplePounce* pounce, const(char)* pouncee); 128 alias da_purple_pounce_set_save = void function(PurplePounce* pounce, gboolean save); 129 alias da_purple_pounce_action_register = void function(PurplePounce* pounce, const(char)* name); 130 alias da_purple_pounce_action_set_enabled = void function(PurplePounce* pounce, const(char)* action, gboolean enabled); 131 alias da_purple_pounce_action_set_attribute = void function(PurplePounce* pounce, const(char)* action, const(char)* attr, const(char)* value); 132 alias da_purple_pounce_set_data = void function(PurplePounce* pounce, void* data); 133 alias da_purple_pounce_get_events = PurplePounceEvent function(const(PurplePounce)* pounce); 134 alias da_purple_pounce_get_options = PurplePounceOption function(const(PurplePounce)* pounce); 135 alias da_purple_pounce_get_pouncer = PurpleAccount* function(const(PurplePounce)* pounce); 136 alias da_purple_pounce_get_pouncee = const(char)* function(const(PurplePounce)* pounce); 137 alias da_purple_pounce_get_save = gboolean function(const(PurplePounce)* pounce); 138 alias da_purple_pounce_action_is_enabled = gboolean function(const(PurplePounce)* pounce, const(char)* action); 139 alias da_purple_pounce_action_get_attribute = const(char)* function(const(PurplePounce)* pounce, const(char)* action, const(char)* attr); 140 alias da_purple_pounce_get_data = void* function(const(PurplePounce)* pounce); 141 alias da_purple_pounce_execute = void function(const(PurpleAccount)* pouncer, const(char)* pouncee, PurplePounceEvent events); 142 alias da_purple_find_pounce = PurplePounce* function(const(PurpleAccount)* pouncer, const(char)* pouncee, PurplePounceEvent events); 143 alias da_purple_pounces_load = gboolean function(); 144 alias da_purple_pounces_register_handler = void function(const(char)* ui, PurplePounceCb cb, void function (PurplePounce*) new_pounce, void function (PurplePounce*) free_pounce); 145 alias da_purple_pounces_unregister_handler = void function(const(char)* ui); 146 alias da_purple_pounces_get_all = GList* function(); 147 alias da_purple_pounces_get_all_for_ui = GList* function(const(char)* ui); 148 alias da_purple_pounces_get_handle = void* function(); 149 alias da_purple_pounces_init = void function(); 150 alias da_purple_pounces_uninit = void function(); 151 } 152 153 __gshared 154 { 155 da_purple_pounce_new purple_pounce_new; 156 da_purple_pounce_destroy purple_pounce_destroy; 157 da_purple_pounce_destroy_all_by_account purple_pounce_destroy_all_by_account; 158 da_purple_pounce_destroy_all_by_buddy purple_pounce_destroy_all_by_buddy; 159 da_purple_pounce_set_events purple_pounce_set_events; 160 da_purple_pounce_set_options purple_pounce_set_options; 161 da_purple_pounce_set_pouncer purple_pounce_set_pouncer; 162 da_purple_pounce_set_pouncee purple_pounce_set_pouncee; 163 da_purple_pounce_set_save purple_pounce_set_save; 164 da_purple_pounce_action_register purple_pounce_action_register; 165 da_purple_pounce_action_set_enabled purple_pounce_action_set_enabled; 166 da_purple_pounce_action_set_attribute purple_pounce_action_set_attribute; 167 da_purple_pounce_set_data purple_pounce_set_data; 168 da_purple_pounce_get_events purple_pounce_get_events; 169 da_purple_pounce_get_options purple_pounce_get_options; 170 da_purple_pounce_get_pouncer purple_pounce_get_pouncer; 171 da_purple_pounce_get_pouncee purple_pounce_get_pouncee; 172 da_purple_pounce_get_save purple_pounce_get_save; 173 da_purple_pounce_action_is_enabled purple_pounce_action_is_enabled; 174 da_purple_pounce_action_get_attribute purple_pounce_action_get_attribute; 175 da_purple_pounce_get_data purple_pounce_get_data; 176 da_purple_pounce_execute purple_pounce_execute; 177 da_purple_find_pounce purple_find_pounce; 178 da_purple_pounces_load purple_pounces_load; 179 da_purple_pounces_register_handler purple_pounces_register_handler; 180 da_purple_pounces_unregister_handler purple_pounces_unregister_handler; 181 da_purple_pounces_get_all purple_pounces_get_all; 182 da_purple_pounces_get_all_for_ui purple_pounces_get_all_for_ui; 183 da_purple_pounces_get_handle purple_pounces_get_handle; 184 da_purple_pounces_init purple_pounces_init; 185 da_purple_pounces_uninit purple_pounces_uninit; 186 } 187 }